package cn.wen.yaling.xo.dao;

import cn.wen.yaling.commons.entity.UserEntity;
import cn.wen.yaling.commons.vo.UserVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 
 * 
 * @author FY
 * @email 932043654@qq.com
 * @date 2022-08-13 02:07:37
 */
@Mapper
@Component
public interface UserDao extends BaseMapper<UserEntity> {

    /**
     * 批量修改用户数据
     * @param userIds
     * @param status
     * @return
     */
    boolean updateBatchUserByIds(@Param("userIds") List<Integer> userIds, @Param("status") Integer status);

    /**
     * 插入到角色和用户关系表中
     * @param userId
     * @param roleIds
     * @return
     */
    boolean insertRoleWithUserRelation(@Param("userId") String userId, @Param("roleIds") List<Integer> roleIds);

    /**
     * 修改用户角色信息
     * @param userId
     * @param roleId
     */
    void updateRoleWithUserRelationByUserId(@Param("userId") String userId, @Param("roleId") Integer roleId);

    /**
     * 获取用户信息和对应角色信息
     * @param keyword
     * @param status
     * @return
     */
    List<UserVO> selectUserListByKeywordAndStatus(@Param("keyword") String keyword,@Param("status") Integer status);

    /**
     * 删除用户和角色的连接信息
     * @param userId
     */
    void deleteUserRoleRelation(@Param("userId") String userId);

    /**
     * 插入角色
     * @param userId
     * @param roleId
     */
    void insertRoleWithUserRelationByUserId(@Param("userId") String userId,@Param("roleId") Integer roleId);

    /**
     * 通过用户Id获取该用户角色
     * @param userId
     * @return
     */
    int getRoleByUserId(@Param("userId") String userId);
}
